/**
 * Description:
 * Class Name:Outer
 * Date:2022/2/9 14:52
 *
 * @author LTisme
 * @version JAVA17
 */
package 疯狂Java讲义.第6章_面向对象_下._6_7_内部类.非静态内部类;

public class Outer {
    private int outProp = 9;
    class Inner{
        private int inProp = 5;
        public void accessOuterProp(){
            // 非静态内部类可以直接访问外部类的private实例变量
            System.out.println("外部类的outProp值：" + outProp);
        }
    }
    public void accessInnerProp(){
        // 外部类不能直接访问非静态内部类的实例变量，下面代码会出现编译错误
//        System.out.println("内部类的inProp值：" + inProp);
        // 如需访问则必须显示创建内部类对象，而且不能是static方法
        System.out.println("内部类的inProp值：" + new Inner().inProp);
    }

    public static void main(String[] args) {
        // 执行下面代码，只创建了外部类对象，不能在static中出现
        var out = new Outer();
        out.accessInnerProp();
    }
}
